package com.eventos;

import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.concurrent.ExecutionException;

import org.json.JSONArray;
import org.json.JSONException;

import android.content.Context;
import android.util.Log;

import com.eventssmartphone.JSONReader;
import com.google.android.maps.GeoPoint;
import com.eventssmartphone.JSONReader;
import com.eventssmartphone.JSONReaderListener;

public class GestorVerPosicionAmbiente {
	public static GestorVerPosicionAmbiente gestor = new GestorVerPosicionAmbiente();
	
	public static GestorVerPosicionAmbiente getInstance(){
		return gestor;
	}
	
	public void damePosicionAmbiente(int idEvento, Context context){
		
		JSONArray jEvento;
		JSONReader readerEvento = new JSONReader();
		readerEvento.setJSONReaderListener((JSONReaderListener)context);
		readerEvento.execute("http://200.16.7.112:3000/event_management/events/dameDetalleEvento/"+ String.valueOf(idEvento) +".json");
		
	}
	
	
	public CoordBean procesarDamePosicionAmbiente(int idEvento,JSONArray jEvento){
		

		try{						
				CoordBean objAmbiente = new CoordBean();
								
				Log.i("VerPosiEvento","esto vale "+(jEvento.getJSONObject(0)).getString("ambiente"));
				if((jEvento.getJSONObject(0)).getString("ambiente") == "null"){
					objAmbiente.setNombre("null");
					Log.i("VerPosiEvento","no llego");
				}
				else{
					
					String cadAmbiente=((jEvento.getJSONObject(0)).getJSONObject("ambiente")).getString("nombre");
					if(cadAmbiente==null) cadAmbiente="Ambiente sin nombre";
					objAmbiente.setNombre(cadAmbiente);
					
					String cadDireccion=((jEvento.getJSONObject(0)).getJSONObject("ambiente")).getString("direccion");
					if(cadDireccion==null) cadDireccion="Sin dirección";
					objAmbiente.setDireccion(cadDireccion);
					
					String cadLatitud;
					String cadLongitud;
					Double latitud;
					Double longitud;
					
					cadLatitud=((jEvento.getJSONObject(0)).getJSONObject("ambiente")).getString("latitud");
					cadLongitud=((jEvento.getJSONObject(0)).getJSONObject("ambiente")).getString("longitud");
					try{
						latitud=Double.parseDouble(cadLatitud);
						longitud=Double.parseDouble(cadLongitud);
					}catch(Exception e){
						latitud=0.0;
						longitud=0.0;
					}
					
					objAmbiente.setCoordenadas(new GeoPoint((int)(latitud * 1E6), (int)(longitud * 1E6)));
					Log.i("coordenadas","Coordenadas. Latitud: "+objAmbiente.getCoordenadas().getLatitudeE6()+"Longitud: "+objAmbiente.getCoordenadas().getLongitudeE6());
					
					
				}
								
			return objAmbiente;
		}catch(JSONException e){
			Log.e("log_tag", "Error parsing data "+e.toString());
			return null;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			Log.e("log_tag","Error GestorVerPosicionAmbiente: "+e.toString());
			
			return null;
		}
	}
	
	public CoordBean damePosicionAmbiente1(){
		CoordBean coordAmbiente = new CoordBean();
	
		coordAmbiente.setIdCoord(1);
		coordAmbiente.setNombre("evento 1");
		coordAmbiente.setCoordenadas(new GeoPoint(0,0));
		
		
		return coordAmbiente;
	}
}
